// 附带聊一下Vue.use()这个use干什么

Vue.use = function(plugin) {
    const installedPlugins = [] // 用来记录哪个插件被使用了
    if (installedPlugins.indexOf(plugin) > -1) {
        return 
    }

    const args = toArray(arguments, 1) // 除了第一个参数之外，其他的参数都给到args
    args.unshift(this) // this == vue  [this, plugin]
    if (typeof plugin.install === 'function') {
        plugin.install.apply(plugin, args) // 防止插件内的作用域被影响
    } else if(typeof plugin === 'function') {
        plugin.apply(plugin, args)
    }
    else {
        throw TypeError('参数类型错误')
    }

    installedPlugins.push(plugin)
    return this
}

function toArray(obj) {
    return Array.from(obj)
} // 专门用来把对象转为数组